热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

主体|发生_C++基础入门丨6.函数——定义调用和声明

篇首语:本文由编程笔记#小编为大家整理,主要介绍了C++基础入门丨6.函数——定义调用和声明相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了C++基础入门丨6. 函数——定义调用和声明相关的知识,希望对你有一定的参考价值。




操作系统:Windows 10
IDE:Visual Studio 2019



文章目录


    • 1 函数的定义
    • 2 函数的调用
    • 3 值传递
    • 4 函数的常见样式
    • 5 函数的声明
    • 6 函数的分文件编写




函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。


函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。


C++ 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。


函数还有很多叫法,比如方法、子例程或程序,等等。


——https://www.runoob.com/cplusplus/c+±functions.html



1 函数的定义

函数的定义一般主要有5个步骤:

1、返回值类型

2、函数名

3、参数表列

4、函数体语句

5、return 表达式

语法:

返回值类型 函数名 (参数列表)

函数体语句
return表达式


  • 返回值类型 :一个函数可以返回一个值。在函数定义中
  • 函数名:给函数起个名称
  • 参数列表:使用该函数时,传入的数据
  • 函数体语句:花括号内的代码,函数内需要执行的语句
  • return表达式: 和返回值类型挂钩,函数执行完后,返回相应的数据

2 函数的调用

函数的调用即:使用我们定义好的函数。

语法: 函数名(参数)

#include<iostream>
using namespace std;
//函数定义
int add(int num1, int num2) //定义中的num1,num2称为形式参数&#xff0c;简称形参

int sum &#61; num1 &#43; num2;
return sum;

int main()
int a &#61; 1;
int b &#61; 1;
//调用add函数
int sum &#61; add(a, b);//调用时的a&#xff0c;b称为实际参数&#xff0c;简称实
cout << "sum &#61; " << sum << endl;
system("pause");
return 0;


  • 注意实参形参的区别。

3 值传递

函数的值传递也就是在函数调用时&#xff0c;实参将值传递给形参。

值传递时&#xff0c;如果形参发生&#xff0c;并不会影响实参。

#include
using namespace std;
void swap(int num1, int num2)

int temp &#61; num1;
num1 &#61; num2;
num2 &#61; temp;
cout << "交换后&#xff1a;" << endl;
cout << "num1 &#61; " << num1 << endl;
cout << "num2 &#61; " << num2 << endl;
//return ; 当函数声明时候&#xff0c;不需要返回值&#xff0c;可以不写return

int main()
int a &#61; 10;
int b &#61; 20;
swap(a, b);
cout << "main中的 a &#61; " << a << endl;
cout << "main中的 b &#61; " << b << endl;
system("pause");
return 0;


  • 形参的值发生交换&#xff0c;不影响实参的值。

4 函数的常见样式

4中常见的函数样式


样式代码示例
无参无返void test01()
有参无返void test02(int a)
无参有返int test03()
有参有返int test04(int a, int b)

5 函数的声明

函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。


  • 当在一个源文件中定义函数且在另一个文件中调用函数时&#xff0c;函数声明是必需的。在这种情况下&#xff0c;应该在调用函数的文件顶部声明函数。
  • 函数的声明可以多次&#xff0c;但是函数的定义只能有一次

函数声明&#xff1a;int max(int num1, int num2);



函数声明和函数定义的区别。



6 函数的分文件编写

函数的分文件编写主要作用是&#xff1a;让代码结构更加清晰。

函数分文件编写一般有4个步骤


  1. 创建后缀名为**.h**的头文件
  2. 创建后缀名为**.c&#43;&#43;**的源文件
  3. 在头文件中写函数的声明
  4. 在源文件中写函数的定义

示例&#xff1a;

//swap.h文件
#include
using namespace std;
//实现两个数字交换的函数声明
void swap(int a, int b);

//swap.c&#43;&#43;文件
#include "swap.h"
void swap(int a, int b)

int temp &#61; a;
a &#61; b;
b &#61; temp;
cout << "a &#61; " << a << endl;
cout << "b &#61; " << b << endl;

//main函数文件
#include "swap.h"
int main()

int a &#61; 100;
int b &#61; 200;
swap(a, b);
system("pause");
return 0;

—— END ——



Reference


  • [1]&#xff1a;https://www.bilibili.com/video/BV1VJ411M7WR


如果以上内容有任何错误或者不准确的地方&#xff0c;欢迎在下面 &#x1f447; 留言。或者你有更好的想法&#xff0c;欢迎一起交流学习~~~

更多精彩内容请前往 AXYZdong的博客


推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了如何在 Windows 环境下使用 node-gyp 工具进行 Node.js 本地扩展的编译和配置,涵盖从环境搭建到代码实现的全过程。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 深入了解 Windows 窗体中的 SplitContainer 控件
    SplitContainer 控件是 Windows 窗体中的一种复合控件,由两个可调整大小的面板和一个可移动的拆分条组成。本文将详细介绍其功能、属性以及如何通过编程方式创建复杂的用户界面。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • C++构造函数与初始化列表详解
    本文深入探讨了C++中构造函数的初始化列表,包括赋值与初始化的区别、初始化列表的使用规则、静态成员初始化等内容。通过实例和调试证明,详细解释了初始化列表在对象创建时的重要性。 ... [详细]
  • 本文介绍如何在Linux Mint系统上搭建Rust开发环境,包括安装IntelliJ IDEA、Rust工具链及必要的插件。通过详细步骤,帮助开发者快速上手。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • 探讨如何修复Visual Studio Code中JavaScript的智能感知和自动完成功能在特定场景下无法正常工作的问题,包括配置检查、语言模式选择以及类型注释的使用。 ... [详细]
author-avatar
QX封面精选
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有